<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>5-Promise常用API-实例方法</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <style></style>
  </head>
  <body>
    <div id="app"></div>
    <script>
      // 1：手动创建一个promise对象，故意抛出一个错误对象出来
      function pMise() {
        return new Promise(function (resolve, reject) {
          setTimeout(function () {
            reject('error啦！');
          }, 100);
        });
      }
      // 打印promise函数，第一个then打印的是错误信息， 第二个then打印的是finally， 因为不管成功或者失败，他都是会打印的
      // pMise()
      //   .then(function (data) {
      //     console.log(data); //error啦！
      //   })
      //   .catch(function (data) {
      //     console.log(data);
      //   })
      //   .finally(function () {
      //     console.log('finally'); // finally
      //   });

      //  ====================================== 同上， 等价的写法
      pMise()
        .then(
          function (data) {
            console.log(data); //error啦！
          },
          function (data) {
            console.log(data);
          }
        )
        .finally(function () {
          console.log('finally'); //finally
        });
    </script>
  </body>
</html>
